home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / pvap322a / pvapview.plp < prev    next >
Text File  |  1993-11-30  |  28KB  |  998 lines

  1. /************************************************************************
  2. *    ログ参照                            *
  3. ************************************************************************/
  4. /*    指定ディレクトリのサブディレクトリ名を返す    */
  5. %subdir{
  6.     [dir,sdir]
  7.     case    (@nochar(dir)==3,
  8.         {Yes},    {im(dir|sdir)},
  9.         {No},    {im(dir|{\}|sdir)});
  10. };
  11.  
  12. %ViewLOG{
  13.     [logdir,memono]
  14.     fn:=@tail(logdir,{\});
  15.     InactMemo;
  16.     loop({
  17.     dispoff({Yes});
  18.     command({dir }|logdir|{>}|TEMPPATH|{\_mopdir.tmp});
  19.     dispoff({No});
  20.     %lineno @noline(@read(TEMPPATH|{\_mopdir.tmp}));
  21.     case(    (@nochar(logdir)!=3&&lineno>9)||
  22.         (@nochar(logdir)==3&&lineno>7),
  23.         {Yes},Viewlog1,
  24.         {No},    {SNDMSG({kaknin_f.snd});
  25.             select(logdir|{ は空です},99999,{im({No})},
  26.                 { 確認 },{im({No})})});
  27.     });
  28.     /*    ログ参照に使用したメモの削除処理    */
  29.     loop({
  30.     case    (@mlast>=memono,
  31.         {Yes},    {case    (@mcheck==0,{Yes},{mopen(@mlast)});
  32.             case    (@mcheck>=memono,
  33.                 {Yes},{mclose(3)},
  34.                 {No},{mclose(1)});
  35.             im({Yes})},
  36.         {No},{im({No})});
  37.     });
  38.     setcdir(DIR1);
  39.     };
  40.  
  41. /*    1ログファイルの表示処理    */
  42. %Select{
  43.     %LineNo @xlinenum;%MemoLine @nolmemo(memono)-1;
  44.     %line1    @case    (LineNo>MemoLine,
  45.             {Yes},{im(@memo(memono,MemoLine,1))},
  46.             {No},{case    (LineNo<=0,
  47.                     {Yes},{im(@memo(memono,1,1))},
  48.                     {No},{im(@memo(memono,LineNo,1))})});
  49.     case    (@body(line1,{<},{>})={DIR},
  50.         {Yes},    {ViewLOG(@subdir(logdir,
  51.             @head(@getchar(line1,1,8),{ })),memono)},
  52.         {No},
  53.         {case    (@getchar(line1,10,3)<>{   },
  54.             {Yes},
  55.                 {LOGFILE:=@subdir(logdir,
  56.                  @head(@getchar(line1,1,8),{ })|{.}|
  57.                  @head(@getchar(line1,10,3),{ }))},
  58.             {No},
  59.                 {LOGFILE:=@subdir(logdir,
  60.                  @head(@getchar(line1,1,8),{ }))});
  61.                 %m1    memono;
  62.                 InactMemo;
  63.                 case(@mlast>=m1,{Yes},{mclear(m1)});
  64.                 mread(LOGFILE,m1);mopen(m1,0,21,639,459,{w});
  65.                 loop({
  66.                 footnote({復帰終了削除更新選択}|
  67.                     {DOWN解石},{b});
  68.                 waitx();
  69.                 case(@xtype,
  70.                 101,{InactMemo;FLG:={Return};im({No})},
  71.                 201,{InactMemo;FLG:={Return};im({No})},
  72.                 102,
  73.                 {InactMemo;footnote({});im({No})},
  74.                 202,
  75.                 {InactMemo;footnote({});im({No})},
  76.                 103,delLOG,203,delLOG,
  77.                 104,updLOG,204,updLOG,
  78.                 105,{whereup(m1);im({Yes})},
  79.                 205,{whereup(m1);im({Yes})},
  80.                 106,{wheredown;im({Yes})},
  81.                 206,{wheredown;im({Yes})},
  82.                 107,{ISH;im({Yes})},
  83.                 207,{ISH;im({Yes})},
  84.                 m1,{whereup(m1);im({Yes})},,{im({Yes})});
  85.                 })});
  86.     case(FLG,{Return},{im({No})},,{im({Yes})});
  87. };
  88.  
  89. /*    ログファイル名の変更処理    */
  90. %Rename{
  91.     footnote({ファイル名を変更しています});
  92.     %LineNo @xlinenum;
  93.     %MemoLine @nolmemo(memono)-1;
  94.     %line1    @case    (LineNo>MemoLine,
  95.             {Yes},    {im(@memo(memono,MemoLine,1))},
  96.             {No},    {case    (LineNo<=0,
  97.                     {Yes},{im(@memo(memono,1,1))},
  98.                     {No},{im(@memo(memono,LineNo,1))})});
  99.     case    (@body(line1,{<},{>})={DIR},
  100.         {Yes},    {SNDMSG({kaknin_f.snd});
  101.             select({ディレクトリ名は変更できません},
  102.                 99999,{im({No})},
  103.                 { 確認 },{im({No})})},
  104.         {No},    {var file [64];
  105.             case    (@getchar(line1,10,3)<>{   },
  106.                 {Yes},{file:=@subdir(logdir,
  107.                     @head(@getchar(line1,1,8),{ })|
  108.                     {.}|@head(@getchar(line1,10,3),{ }))},
  109.                 {No},{file:=@subdir(logdir,
  110.                     @head(@getchar(line1,1,8),{ }))});
  111.             SNDMSG({nyuryo_f.snd});
  112.             footnote({新しいファイル名を入力して下さい});
  113.             %file2    @input({新しいファイル名を入力して下さい},,
  114.                 @tail(file,{\}));
  115.             case    (file2={}||file2=@tail(file,{\})||
  116.                 @filechk(file2),
  117.             {No},
  118.             {footnote({ファイル名を変更しています});
  119.             dispoff({Yes});
  120.             command({rename }|file|{ }|file2);
  121.             command({dir }|logdir|{>}|TEMPPATH|{\_mopdir.tmp});
  122.             dispoff({No});
  123.             InactMemo;
  124.             case(@mlast>=memono,{Yes},{mclear(memono)});
  125.             madd(memono,@read(TEMPPATH|{\_mopdir.tmp},7,lineno-9));
  126.             mopen(memono,0,21,639,459,{r})})});
  127.     im({Yes});
  128. };
  129.  
  130. /*    ログファイルの複写処理    */
  131. %Copy{
  132.     footnote({ファイルを複写します});
  133.     %LineNo @xlinenum;
  134.     %MemoLine @nolmemo(memono)-1;
  135.     %line1    @case    (LineNo>MemoLine,
  136.             {Yes},    {im(@memo(memono,MemoLine,1))},
  137.             {No},    {case    (LineNo<=0,
  138.                     {Yes},{im(@memo(memono,1,1))},
  139.                     {No},{im(@memo(memono,LineNo,1))})});
  140.     case    (@body(line1,{<},{>})={DIR},
  141.         {Yes},    {SNDMSG({kaknin_f.snd});
  142.             select({ディレクトリは複写できません},
  143.                 99999,{im({No})},
  144.                 { 確認 },{im({No})})},
  145.         {No},    {case    (@getchar(line1,10,3)<>{   },
  146.                 {Yes},    {LOGFILE:=@subdir(logdir,
  147.                     @head(@getchar(line1,1,8),{ })|
  148.                     {.}|@head(@getchar(line1,10,3),{ }))},
  149.                 {No},    {LOGFILE:=@subdir(logdir,
  150.                     @head(@getchar(line1,1,8),{ }))});
  151.             SNDMSG({erande_f.snd});
  152.             footnote({複写先のファイルを指定して下さい});
  153.             %file2    @filesel;
  154.             case    (file2={},
  155.                 {No},    {footnote({ファイルを複写します});
  156.                     dispoff({Yes});
  157.                     command({copy }|LOGFILE|{ }|file2);
  158.                     dispoff({No})})});
  159.     im({Yes});
  160. };
  161.  
  162. /*    ディレクトリ表示と選択処理    */
  163. %Viewlog1{
  164.     InactMemo;
  165.     case(@mlast>=memono,{Yes},{mclear(memono)});
  166.     case    (@nochar(logdir)==3,
  167.         {Yes},{madd(memono,@read(TEMPPATH|{\_mopdir.tmp},5,lineno-7));
  168.             setcdir(logdir)},
  169.         {No},{madd(memono,@read(TEMPPATH|{\_mopdir.tmp},7,lineno-9));
  170.             setcdir(logdir)});
  171.     mopen(memono,0,21,639,459,{r});
  172.     SNDMSG({erande_f.snd});
  173.     footnote({復帰終了選択改名複写解凍},{b});
  174.     waitx();
  175.     case    (@xtype,
  176.         memono,Select,
  177.         101,{FLG:={Return};im({No})},
  178.         201,{FLG:={Return};im({No})},
  179.         102,{im({No})},    202,{im({No})},
  180.         103,Select,    203,Select,
  181.         104,Rename,    204,Rename,
  182.         105,Copy,    205,Copy,
  183.         106,Extract,    206,Extract,
  184.         ,{im({Yes})});
  185. };
  186.  
  187. /*    表示中のファイル内のISHデータを解石する    */
  188. %ISH{
  189.     %cdir    @getcdir;
  190.     footnote({解石ファイルを保存するディレクトリへ移動して右クリックして下さい});
  191.     filesel;
  192.     footnote({ISHデータ解石中});
  193.     command({ISH }|LOGFILE);
  194.     setcdir(cdir);
  195. };
  196.  
  197. /*    *.lzhファイルの解凍処理    */
  198. %Extract{
  199.     footnote({圧縮形式ファイルの解凍を行います});
  200.     %LineNo @xlinenum;
  201.     %MemoLine @nolmemo(memono)-1;
  202.     %line1    @case    (LineNo>MemoLine,
  203.             {Yes},    {im(@memo(memono,MemoLine,1))},
  204.             {No},    {case    (LineNo<=0,
  205.                     {Yes},{im(@memo(memono,1,1))},
  206.                     {No},{im(@memo(memono,LineNo,1))})});
  207.     case    (@getchar(line1,10,3)={LZH},
  208.         {No},    {SNDMSG({kaknin_f.snd});
  209.             select({圧縮ファイルでないので解凍できません},99999,,
  210.                 { 確認 },)},
  211.         {Yes},    {var    file    [64];
  212.             file:=@subdir(logdir,@head(@getchar(line1,1,8),{ }));
  213.             %cdir    @getcdir;
  214.             SNDMSG({erande.snd});
  215.             footnote({解凍先のディレクトリに移動して}|
  216.                 {右クリックして下さい});
  217.             filesel;
  218.             footnote({圧縮ファイルを解凍しています});
  219.             InactMemo;
  220.             command({lha x }|file);
  221.             setcdir(cdir);
  222.             dispoff({Yes});
  223.             command({dir }|logdir|{>}|TEMPPATH|{\_mopdir.tmp});
  224.             dispoff({No});
  225.             case(@mlast>=memono,{Yes},{mclear(memono)});
  226.             madd(memono,@read(TEMPPATH|{\_mopdir.tmp},7,lineno-9));
  227.             mopen(memono,0,21,639,459,{r})});
  228.     im({Yes});
  229. };
  230.  
  231. /*    ログファイルの削除処理    */
  232. %delLOG{
  233.     footnote({ログファイルを削除します});
  234.     SNDMSG({kaknin_f.snd});
  235.     select({現在表示しているログファイルを削除します},
  236.         99999,{im({Yes})},
  237.         {  削除する  },    {InactMemo;
  238.                 delfile(LOGFILE);
  239.                 im({No})},
  240.         { 削除しない },    {im({Yes})});
  241. };
  242.  
  243. /*    ログファイルの更新処理    */
  244. %updLOG    {
  245.     footnote({ログファイルを更新します});
  246.     SNDMSG({kaknin_f.snd});
  247.     select({現在表示しているログファイルを更新します},
  248.         99999,{im({Yes})},
  249.         {  更新する  },    {InactMemo;
  250.                 delfile(LOGFILE);
  251.                 mwrite(LOGFILE,memono);
  252.                 dispoff({Yes});
  253.                 command({dir }|logdir|{>}|TEMPPATH|
  254.                     {\_mopdir.tmp});
  255.                 dispoff({No});
  256.                 im({No})},
  257.         { 更新しない },{im({Yes})});
  258. };
  259.  
  260. /*    ログ保存モードが全体で一つの場合でジャンプコードが送信されている行の行
  261.     番号を返す*/
  262. %findcode{
  263.     %LineNo @xlinenum;
  264.     %MemoLine @nolmemo(memono)-1;
  265.     %lineno    @case    (LineNo>MemoLine,
  266.             {Yes},    {im(MemoLine)},
  267.             {No},    {case    (LineNo<=0,
  268.                     {Yes},{im(1)},
  269.                     {No},{im(LineNo)})});
  270.     dispoff({Yes});
  271.     %Logfile @tail(LOGFILE,{\});
  272.     %Logfile2 @head(@tail(LOGFILE,{\}),{.})|{.sav};
  273.     case    (DIR2={},
  274.         {No},
  275.         {command(DIR2|{\lcut }|Logfile|{ > lcut.tmp})},
  276.         {Yes},
  277.         {command({lcut }|Logfile|{ > lcut.tmp})});
  278.     delfile(LOGFILE);
  279.     command({rename }|Logfile2|{ }|Logfile);
  280.     dispoff({No});
  281.     A:=1;
  282.     B:=0;
  283.     C:=0;
  284.     %LCUTDATA @read({lcut.tmp});
  285.     D:=(@noline(LCUTDATA)-2)/2;
  286.     loop({
  287.     B:=@tail(@head(@getline(LCUTDATA,A,1),{: }),{ });
  288.     case    (D<=0,
  289.         {No},{case    (B<lineno,
  290.                 {Yes},    {C:=B;A:=A+2;D:=D-1;im({Yes})},
  291.                 {No},    {im({No})})},
  292.         {Yes},{im({No})});
  293.     });
  294.     delfile({lcut.tmp});
  295.     im(C);
  296. };
  297.  
  298. /*    アップロード先の振り分け    */
  299. %whereup{
  300.     [memono]
  301.     var jumpcode[50];
  302.     var forumnum[50];
  303.     var sendid[8];
  304.     %LineNo @xlinenum;
  305.     %MemoLine @nolmemo(memono)-1;
  306.     %line1    @case    (LineNo>MemoLine,
  307.             {Yes},    {im(@memo(memono,MemoLine,1))},
  308.             {No},    {case    (LineNo<=0,
  309.                     {Yes},{im(@memo(memono,1,1))},
  310.                     {No},{im(@memo(memono,LineNo,1))})});
  311.     %line2    @case    (LineNo-3>MemoLine-3,
  312.             {Yes},    {im(@memo(memono,MemoLine-3,1))},
  313.             {No},    {case    (LineNo-3<=0,
  314.                     {Yes},{im(@memo(memono,1,1))},
  315.                     {No},{im(@memo(memono,LineNo-3,1))})});
  316.     %line3    @case    (LineNo-2>MemoLine-2,
  317.             {Yes},    {im(@memo(memono,MemoLine-2,1))},
  318.             {No},    {case    (LineNo-2<=0,
  319.                     {Yes},{im(@memo(memono,1,1))},
  320.                     {No},{im(@memo(memono,LineNo-2,1))})});
  321.     %line4    @case    (LineNo+5>MemoLine+5,
  322.             {Yes},    {im(@memo(memono,MemoLine+5,1))},
  323.             {No},    {case    (LineNo+5<=0,
  324.                     {Yes},{im(@memo(memono,1,1))},
  325.                     {No},{im(@memo(memono,LineNo+5,1))})});
  326.     case    (@getchar(line1,1,6)={文書名},
  327.         {Yes},    {case(@getchar(line2,1,15)={発信者:MHSX400},
  328.             {Yes},    {var mailtitle[50];
  329.                 var sendid[8];
  330.                 mailtitle:={RE:}|@head(@getchar(line1,9),{\n});
  331.                 sendid:=@getchar(line4,13,8);
  332.                 NIFMAIL},
  333.             {No},    {var mailtitle[50];
  334.                 var sendid[8];
  335.                 mailtitle:={RE:}|@head(@getchar(line1,9),{\n});
  336.                 sendid:=@getchar(line2,9,8);
  337.                 MAIL})},
  338.         {No},    {case    (SAVE={BOARD},
  339.                 {Yes},
  340.                 {case    (@getchar(line1,1,8)={★タイト},
  341.                     {Yes},{jumpcode:=@head(@body(@getcdir,
  342.                         LOGPATH|{\}),{\});
  343.                         forumnum:=@tail(@getcdir,{\});
  344.                         sendid:=@head(line1,{(},{)});
  345.                         saymes},
  346.                     {No},    {SNDMSG({okasi_f.snd});
  347.                         select({カーソルを}|
  348.                         {「★タイトル」}|
  349.                         {に移動して下さい},99999,,
  350.                         { 確認 },)})},,{
  351.             case    (@getchar(line1,1,8)={****},
  352.                 {Yes},
  353.                 {case    (SAVE={JUMPCODE},
  354.                     {Yes},
  355.                     {jumpcode:=@tail(@getcdir,{\});
  356.                     forumnum:=@head(@tail(line3,{,J)=RN}),
  357.                         {\n})});
  358.                 case    (SAVE={WHOLE},
  359.                     {Yes},
  360.                     {%LINE @findcode;
  361.                     jumpcode:=@head(@memo(memono,LINE,1),
  362.                         {,J)=J },{\n});
  363.                     forumnum:=@head(@tail(line3,{,J)=RN}),
  364.                         {\n})});
  365.                 saymes},,
  366.                     {SNDMSG({okasi_f.snd});
  367.                     select({カーソルを}|
  368.                     {「**** ボード名 ****」}|
  369.                     {に移動して下さい},99999,,
  370.                         { 確認 },)})})});
  371. };
  372. %saymes{
  373.     SNDMSG({erande_f.snd});
  374.     footnote({アップロードする場所の種類を選択して下さい});
  375.     select({アップロードする場所の種類を選択して下さい},99999,,
  376.         {   SIG   },{saySIG},
  377.         {   BBS   },{case    (SAVE,
  378.                     {BOARD},
  379.                     {sayMES3({BBS})},,
  380.                     {sayMES1({BBS})})},
  381.         {   CUG   },{sayCUG});
  382. };
  383. %saySIG{
  384.     SNDMSG({erande_f.snd});
  385.     footnote({アップロードする場所の種類を選択して下さい});
  386.     select({アップロードする場所の種類を選択して下さい},99999,,
  387.         { フォーラム },{case    (SAVE,
  388.                     {BOARD},
  389.                     {sayMES3({フォーラム})},,
  390.                     {sayMES1({フォーラム})})},
  391.         {   会議室   },{case    (SAVE,
  392.                     {BOARD},
  393.                     {sayMES3({SIG内会議室})},,
  394.                     {sayMES1({SIG内会議室})})});
  395. };
  396. %sayCUG{
  397.     SNDMSG({erande_f.snd});
  398.     footnote({アップロードする場所の種類を選択して下さい});
  399.     select({アップロードする場所の種類を選択して下さい},99999,,
  400.         {   掲示板   },{case    (SAVE,
  401.                     {BOARD},
  402.                     {sayMES4({CUG内掲示板})},,
  403.                     {sayMES2({CUG内掲示板})})},
  404.         {   会議室   },{case    (SAVE,
  405.                     {BOARD},
  406.                     {sayMES4({CUG内会議室})},,
  407.                     {sayMES2({CUG内会議室})})});
  408. };
  409.  
  410. /*    ダウン場所選択    */
  411. %wheredown{
  412.     SNDMSG({erande_f.snd});
  413.     footnote({ダウンロードする場所を選択して下さい});
  414.     select({ダウンロードする場所を選択して下さい},99999,,
  415.         {   SIG   },{downSIG},
  416.         {   CUG   },{downCUG});
  417. };
  418. %downSIG{
  419.     SNDMSG({erande_f.snd});
  420.     footnote({ダウンロードする場所を選択して下さい});
  421.     select({ダウンロードする場所を選択して下さい},99999,,
  422.         {   OSL   },{downOSLLIB({SIG内OSL})},
  423.         { ライブラリ },{downOSLLIB({SIG内ライブラリ})});
  424. };
  425. %downCUG{
  426.     SNDMSG({erande_f.snd});
  427.     footnote({ダウンロードする場所を選択して下さい});
  428.     select({ダウンロードする場所を選択して下さい},99999,,
  429.         {   OSL   },{downCUGOSL({CUG内OSL})},
  430.         { ライブラリ },{downCUGOSL({CUG内ライブラリ})});
  431. };
  432.  
  433. /*    SIG・BBSへの発言作成処理    */
  434. %sayMES1{
  435.     [WHERE]
  436.     %savememo{
  437.     SNDMSG({nyuryo_f.snd});
  438.     %a @plane({c}|WHERE|{発言アップロード予約\n}|
  439.         {tジャンプコード /12345678\n}|
  440.         {tボード番号 /12\n}|
  441.         {tタイトル   /\n}|
  442.         {s/ 登録 / 取消 \n},jumpcode,forumnum);
  443.     %JUMP    @head(@getline(a,1,1),{\n});
  444.     %NUMBER    @head(@getline(a,2,1),{\n});
  445.     %TITLE    @head(@getline(a,3,1),{\n});
  446.     %ok    @head(@getline(a,4,1),{\n});
  447.     case    (ok==1,
  448.         {Yes},    {case    (@nochar(TITLE)>={60},
  449.                 {No},
  450.                 {footnote(WHERE|{への送信文書}|
  451.                     {の作成を行います});
  452.                 %file1 @crefile2(TEMPPATH,{res});
  453.                 case(@mcheck!=0,{Yes},{mclose(1)});
  454.                 mwrite(TEMPPATH|{\}|file1,memono+1);
  455.                 mopen(memono+1,0,241,639,459,{w});
  456.                 %res1    WHERE|{/}|JUMP|{/}|NUMBER|{/}|
  457.                     TITLE|{/}|
  458.                     TEMPPATH|{\}|file1|{\n};
  459.                 write(TEMPPATH|{\PVAPUP.DAT},res1);
  460.                 case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  461.                 mclose(3);
  462.                 InactMemo;
  463.                 mopen(memono,0,21,639,459,{w})},
  464.                 {Yes},
  465.                 {SNDMSG({okasi_f.snd});
  466.                 select({タイトルの文字数が多すぎます}|
  467.                     {(全角で30文字まで)},
  468.                     99999,{im({Yes})},
  469.                     { 確認 },{im({Yes})})})},,
  470.             {im({Yes})});
  471.     };
  472.     footnote(WHERE|{への送信文書の作成を行います});
  473.     OpenMemo;
  474.     loop({
  475.     footnote({終了取消参照清書},{b});
  476.     waitx();
  477.     case    (@xtype,
  478.         101,{savememo},
  479.         201,{savememo},
  480.         102,{cancel},
  481.         202,{cancel},
  482.         103,{newmemo},
  483.         203,{newmemo},
  484.         104,{rewrite},
  485.         204,{rewrite},
  486.         ,{im({Yes})});
  487.     });
  488.     setcdir(logdir);
  489.     im({Yes});
  490. };
  491.  
  492. /*    SIG・BBSへの発言作成処理(ボード別に保存)    */
  493. %sayMES3{
  494.     [WHERE]
  495.     %savememo{
  496.     SNDMSG({nyuryo_f.snd});
  497.     %a @plane({c}|WHERE|{発言アップロード予約\n}|
  498.         {tジャンプコード /12345678\n}|
  499.         {tボード番号 /12\n}|
  500.         {tタイトル   /\n}|
  501.         {s/ 登録 / 取消 \n}|
  502.         {c\n}|
  503.         {tメール宛先 /12345678\n}|
  504.         {s/ 登録 / 取消 \n},jumpcode,forumnum,,sendid);
  505.     %JUMP    @head(@getline(a,1,1),{\n});
  506.     %NUMBER    @head(@getline(a,2,1),{\n});
  507.     %TITLE    @head(@getline(a,3,1),{\n});
  508.     %ok    @head(@getline(a,4,1),{\n});
  509.     %SENDID @head(@getline(a,5,1),{\n});
  510.     %ok2    @head(@getline(a,6,1),{\n});
  511.     case    (ok,
  512.         { 1},    {case    (@nochar(TITLE)>={60},
  513.                 {No},
  514.                 {footnote(WHERE|{への送信文書}|
  515.                     {の作成を行います});
  516.                 %file1 @crefile2(TEMPPATH,{res});
  517.                 case(@mcheck!=0,{Yes},{mclose(1)});
  518.                 mwrite(TEMPPATH|{\}|file1,memono+1);
  519.                 mopen(memono+1,0,241,639,459,{w});
  520.                 %res1    WHERE|{/}|JUMP|{/}|NUMBER|{/}|
  521.                     TITLE|{/}|
  522.                     TEMPPATH|{\}|file1|{\n};
  523.                 write(TEMPPATH|{\PVAPUP.DAT},res1);
  524.                 case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  525.                 mclose(3);
  526.                 InactMemo;
  527.                 mopen(memono,0,21,639,459,{w})},
  528.                 {Yes},
  529.                 {SNDMSG({okasi_f.snd});
  530.                 select({タイトルの文字数が多すぎます}|
  531.                     {(全角で30文字まで)},
  532.                     99999,{im({Yes})},
  533.                     { 確認 },{im({Yes})})})},,
  534.         {case(ok2,{ 1},
  535.             {case    (@nochar(TITLE)>={40},
  536.                 {No},
  537.                 {footnote({テキストメールの作成を行います});
  538.                 %file1 @crefile(TEMPPATH,{res});
  539.                 case(@mcheck!=0,{Yes},{mclose(1)});
  540.                 mwrite(TEMPPATH|{\}|file1,memono+1);
  541.                 mopen(memono+1,0,241,639,459,{w});
  542.                 %res1    {テキストメール/}|
  543.                     SENDID|{//}|TITLE|{//}|
  544.                     TEMPPATH|{\}|file1|{\n};
  545.                 write(TEMPPATH|{\PVAPUP.DAT},res1);
  546.                 case    (@mcheck!=memono+1,
  547.                     {Yes},{mopen(memono+1)});
  548.                 mclose(3);
  549.                 InactMemo;
  550.                 mopen(memono,0,21,639,459,{w})},
  551.                 {Yes},
  552.                 {SNDMSG({okasi_f.snd});
  553.                 select({タイトルの文字数が多すぎます}|
  554.                     {(全角で20文字まで)},
  555.                     99999,{im({Yes})},
  556.                     { 確認 },{im({Yes})})})},,
  557.             {im({Yes})})});
  558.     };
  559.     footnote(WHERE|{への送信文書の作成を行います});
  560.     OpenMemo;
  561.     loop({
  562.     footnote({終了取消参照清書},{b});
  563.     waitx();
  564.     case    (@xtype,
  565.         101,{savememo},
  566.         201,{savememo},
  567.         102,{cancel},
  568.         202,{cancel},
  569.         103,{newmemo},
  570.         203,{newmemo},
  571.         104,{rewrite},
  572.         204,{rewrite},
  573.         ,{im({Yes})});
  574.     });
  575.     setcdir(logdir);
  576.     im({Yes});
  577. };
  578.  
  579. /*    CUGへの発言作成処理    */
  580. %sayMES2{
  581.     [WHERE]
  582.     %savememo{
  583.     SNDMSG({nyuryo_f.snd});
  584.     %a    @plane(    {c}|WHERE|{発言アップロード予約\n}|
  585.             {tCUG名    /12345678\n}|
  586.             {tパスワード  /12345678\n}|
  587.             {tメインメニュー番号 /12\n}|
  588.             {tボード 番号 /12\n}|
  589.             {tタイトル    /\n}|
  590.             {s/ 登録 / 取消 \n},
  591.             jumpcode,@tail(PCVAN,{/}|jumpcode|{/},{/}),
  592.             ,forumnum);
  593.     %JUMP    @head(@getline(a,1,1),{\n});
  594.     %PASS    @head(@getline(a,2,1),{\n});
  595.     %MAINNUM@head(@getline(a,3,1),{\n});
  596.     %NUMBER    @head(@getline(a,4,1),{\n});
  597.     %TITLE    @head(@getline(a,5,1),{\n});
  598.     %ok    @head(@getline(a,6,1),{\n});
  599.     case    (ok==1,
  600.         {Yes},    {case    (@nochar(TITLE)>={60},
  601.                 {No},
  602.                 {footnote(WHERE|{への送信文書}|
  603.                     {の作成を行います});
  604.                 %file1 @crefile2(TEMPPATH,{res});
  605.                 case(@mcheck!=0,{Yes},{mclose(1)});
  606.                 mwrite(TEMPPATH|{\}|file1,memono+1);
  607.                 mopen(memono+1,0,241,639,459,{w});
  608.                 %res1    WHERE|{/}|JUMP|{/}|PASS|{/}|
  609.                     MAINNUM|{/}|NUMBER|{/}|TITLE|{/}|
  610.                     TEMPPATH|{\}|file1|{\n};
  611.                 write(TEMPPATH|{\PVAPUP.DAT},res1);
  612.                 case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  613.                 mclose(3);
  614.                 InactMemo;
  615.                 mopen(memono,0,21,639,459,{w})},
  616.                 {Yes},
  617.                 {SNDMSG({okasi_f.snd});
  618.                 select({タイトルの文字数が多すぎます}|
  619.                     {(全角で30文字まで)},
  620.                     99999,{im({Yes})},
  621.                     { 確認 },{im({Yes})})})},
  622.         {No},    {im({Yes})});
  623.     };
  624.     footnote(WHERE|{への送信文書の作成を行います});
  625.     OpenMemo;
  626.     loop({
  627.     footnote({終了取消参照清書},{b});
  628.     waitx();
  629.     case    (@xtype,
  630.         101,{savememo},
  631.         201,{savememo},
  632.         102,{cancel},
  633.         202,{cancel},
  634.         103,{newmemo},
  635.         203,{newmemo},
  636.         104,{rewrite},
  637.         204,{rewrite},
  638.         ,{im({Yes})});
  639.     });
  640.     setcdir(logdir);
  641.     im({Yes});
  642. };
  643.  
  644. /*    CUGへの発言作成処理(ボード別に保存)    */
  645. %sayMES4{
  646.     [WHERE]
  647.     %savememo{
  648.     SNDMSG({nyuryo_f.snd});
  649.     %a @plane({c}|WHERE|{発言アップロード予約\n}|
  650.         {tCUG名    /12345678\n}|
  651.         {tパスワード  /12345678\n}|
  652.         {tメインメニュー番号 /12\n}|
  653.         {tボード 番号 /12\n}|
  654.         {tタイトル    /\n}|
  655.         {s/ 登録 / 取消 \n}|
  656.         {c\n}|
  657.         {tメール宛先 /12345678\n}|
  658.         {s/ 登録 / 取消 \n},
  659.         jumpcode,@tail(PCVAN,{/}|jumpcode|{/},{/}),,forumnum,,sendid);
  660.     %JUMP    @head(@getline(a,1,1),{\n});
  661.     %PASS    @head(@getline(a,2,1),{\n});
  662.     %MAINNUM@head(@getline(a,3,1),{\n});
  663.     %NUMBER    @head(@getline(a,4,1),{\n});
  664.     %TITLE    @head(@getline(a,5,1),{\n});
  665.     %ok    @head(@getline(a,6,1),{\n});
  666.     %SENDID @head(@getline(a,7,1),{\n});
  667.     %ok2    @head(@getline(a,8,1),{\n});
  668.     case    (ok,
  669.         { 1},    {case    (@nochar(TITLE)>={60},
  670.                 {No},
  671.                 {footnote(WHERE|{への送信文書}|
  672.                     {の作成を行います});
  673.                 %file1 @crefile2(TEMPPATH,{res});
  674.                 case(@mcheck!=0,{Yes},{mclose(1)});
  675.                 mwrite(TEMPPATH|{\}|file1,memono+1);
  676.                 mopen(memono+1,0,241,639,459,{w});
  677.                 %res1    WHERE|{/}|JUMP|{/}|PASS|{/}|
  678.                     MAINNUM|{/}|NUMBER|{/}|
  679.                     TITLE|{/}|
  680.                     TEMPPATH|{\}|file1|{\n};
  681.                 write(TEMPPATH|{\PVAPUP.DAT},res1);
  682.                 case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  683.                 mclose(3);
  684.                 InactMemo;
  685.                 mopen(memono,0,21,639,459,{w})},
  686.                 {Yes},
  687.                 {SNDMSG({okasi_f.snd});
  688.                 select({タイトルの文字数が多すぎます}|
  689.                     {(全角で30文字まで)},
  690.                     99999,{im({Yes})},
  691.                     { 確認 },{im({Yes})})})},,
  692.         {case(ok2,{ 1},
  693.             {case    (@nochar(TITLE)>={40},
  694.                 {No},
  695.                 {footnote({テキストメールの作成を行います});
  696.                 %file1 @crefile(TEMPPATH,{res});
  697.                 case(@mcheck!=0,{Yes},{mclose(1)});
  698.                 mwrite(TEMPPATH|{\}|file1,memono+1);
  699.                 mopen(memono+1,0,241,639,459,{w});
  700.                 %res1    {テキストメール/}|
  701.                     SENDID|{//}|TITLE|{//}|
  702.                     TEMPPATH|{\}|file1|{\n};
  703.                 write(TEMPPATH|{\PVAPUP.DAT},res1);
  704.                 case    (@mcheck!=memono+1,
  705.                     {Yes},{mopen(memono+1)});
  706.                 mclose(3);
  707.                 InactMemo;
  708.                 mopen(memono,0,21,639,459,{w})},
  709.                 {Yes},
  710.                 {SNDMSG({okasi_f.snd});
  711.                 select({タイトルの文字数が多すぎます}|
  712.                     {(全角で20文字まで)},
  713.                     99999,{im({Yes})},
  714.                     { 確認 },{im({Yes})})})},,
  715.             {im({Yes})})});
  716.     };
  717.     footnote(WHERE|{への送信文書の作成を行います});
  718.     OpenMemo;
  719.     loop({
  720.     footnote({終了取消参照清書},{b});
  721.     waitx();
  722.     case    (@xtype,
  723.         101,{savememo},
  724.         201,{savememo},
  725.         102,{cancel},
  726.         202,{cancel},
  727.         103,{newmemo},
  728.         203,{newmemo},
  729.         104,{rewrite},
  730.         204,{rewrite},
  731.         ,{im({Yes})});
  732.     });
  733.     setcdir(logdir);
  734.     im({Yes});
  735. };
  736.  
  737. /*    テキストメール作成処理    */
  738. %MAIL{
  739.     %savememo{
  740.     SNDMSG({nyuryo_f.snd});
  741.     %a    @plane(    {cテキストメールアップロード予約\n}|
  742.             {t送信ID /\n}|
  743.             {c 複数のIDに送信する場合は「,」で区切って下さい\n}|
  744.             {tタイトル /12345678901234567890}|
  745.             {12345678901234567890\n}|
  746.             {t送信日   /123456\n}|
  747.             {c (例)920428  92年4月28日に送信する場合\n}|
  748.             {rコマンド /BC /無し\n}|
  749.             {s/ 登録 / 取消 \n},sendid,mailtitle);
  750.     %SENDID    @head(@getline(a,1,1),{\n});
  751.     %TITLE    @head(@getline(a,2,1),{\n});
  752.     %AD    @head(@getline(a,3,1),{\n});
  753.     %MAILCOM@case    (@head(@getline(a,4,1),{\n}),
  754.             { 1},{im({BC})},
  755.             { 2},);
  756.     %ok    @head(@getline(a,5,1),{\n});
  757.     case    (ok==1,
  758.         {Yes},    {footnote({テキストメールの作成を行います});
  759.             %file1 @crefile2(TEMPPATH,{res});
  760.             case(@mcheck!=0,{Yes},{mclose(1)});
  761.             mwrite(TEMPPATH|{\}|file1,memono+1);
  762.             mopen(memono+1,0,241,639,459,{w});
  763.             %res1    {テキストメール/}|
  764.                 SENDID|{/}|AD|{/}|TITLE|{/}|
  765.                 MAILCOM|{/}|TEMPPATH|{\}|file1|{\n};
  766.             write(TEMPPATH|{\PVAPUP.DAT},res1);
  767.             case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  768.             mclose(3);
  769.             InactMemo;
  770.             mopen(memono,0,21,639,459,{w})},
  771.         {No},    {im({Yes})});
  772.     };
  773.     footnote({テキストメールの作成を行います});
  774.     OpenMemo;
  775.     loop({
  776.     footnote({終了取消参照清書},{b});
  777.     waitx();
  778.     case    (@xtype,
  779.         101,{savememo},
  780.         201,{savememo},
  781.         102,{cancel},
  782.         202,{cancel},
  783.         103,{newmemo},
  784.         203,{newmemo},
  785.         104,{rewrite},
  786.         204,{rewrite},
  787.         ,{im({Yes})});
  788.     });
  789.     setcdir(logdir);
  790.     im({Yes});
  791. };
  792.  
  793. /*    NIFTY連携メール作成処理    */
  794. %NIFMAIL{
  795.     %savememo{
  796.     SNDMSG({nyuryo_f.snd});
  797.     %a    @plane(    {cNIFTY連携メールアップロード予約\n}|
  798.             {t送信ID /\n}|
  799.             {c 複数のIDに送信する場合は「,」で区切って下さい\n}|
  800.             {tタイトル /12345678901234567890}|
  801.             {12345678901234567890\n}|
  802.             {t送信日   /123456\n}|
  803.             {c (例)920428  92年4月28日に送信する場合\n}|
  804.             {s/ 登録 / 取消 \n},sendid,mailtitle);
  805.     %SENDID    @head(@getline(a,1,1),{\n});
  806.     %TITLE    @head(@getline(a,2,1),{\n});
  807.     %AD    @head(@getline(a,3,1),{\n});
  808.     %ok    @head(@getline(a,4,1),{\n});
  809.     case    (ok==1,
  810.         {Yes},    {footnote({NIFTY連携メールの作成を行います});
  811.             %file1 @crefile2(TEMPPATH,{res});
  812.             case(@mcheck!=0,{Yes},{mclose(1)});
  813.             mwrite(TEMPPATH|{\}|file1,memono+1);
  814.             mopen(memono+1,0,241,639,459,{w});
  815.             %res1    {NIFTY連携メール/}|
  816.                 SENDID|{/}|TITLE|{/}|AD|{/}|
  817.                 TEMPPATH|{\}|file1|{\n};
  818.             write(TEMPPATH|{\PVAPUP.DAT},res1);
  819.             case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  820.             mclose(3);
  821.             InactMemo;
  822.             mopen(memono,0,21,639,459,{w})},
  823.         {No},    {im({Yes})});
  824.     };
  825.     footnote({NIFTY連携メールの作成を行います});
  826.     OpenMemo;
  827.     loop({
  828.     footnote({終了取消参照清書},{b});
  829.     waitx();
  830.     case    (@xtype,
  831.         101,{savememo},
  832.         201,{savememo},
  833.         102,{cancel},
  834.         202,{cancel},
  835.         103,{newmemo},
  836.         203,{newmemo},
  837.         104,{rewrite},
  838.         204,{rewrite},
  839.         ,{im({Yes})});
  840.     });
  841.     setcdir(logdir);
  842.     im({Yes});
  843. };
  844.  
  845. /*    SIGからのダウンロード予約作成処理    */
  846. %downOSLLIB{[WHERE]
  847.     SNDMSG({nyuryo_f.snd});
  848.     %a    @plane(    {c}|WHERE|{ダウンロード予約\n}|
  849.             {tジャンプコード     /12345678\n}|
  850.             {tOSL・ライブラリ番号 /12\n}|
  851.             {tファイル・情報 番号 /123\n}|
  852.             {s/ 登録 / 取消 \n});
  853.     %JUMP    @head(@getline(a,1,1),{\n});
  854.     %OSLNUM    @head(@getline(a,2,1),{\n});
  855.     %DOWNNUM@head(@getline(a,3,1),{\n});
  856.     %ok    @head(@getline(a,4,1),{\n});
  857.     case    (ok==1,
  858.         {Yes},    {%res1 WHERE|{/}|
  859.                 JUMP|{/}|OSLNUM|{/}|DOWNNUM|{\n};
  860.             write(TEMPPATH|{\PVAPDOWN.DAT},res1);});
  861.     case(@mcheck!=memono,{Yes},{mopen(memono)});
  862.     im({Yes});
  863. };
  864.  
  865. /*    CUGからのダウンロード予約作成処理    */
  866. %downCUGOSL{[WHERE]
  867.     SNDMSG({nyuryo_f.snd});
  868.     %a    @plane(    {c}|WHERE|{ダウンロード予約\n}|
  869.             {tCUG名       /12345678\n}|
  870.             {tパスワード     /12345678\n}|
  871.             {tメインメニュー   番号 /12\n}|
  872.             {tOSL・ライブラリ番号 /12\n}|
  873.             {tファイル・情報 番号 /123\n}|
  874.             {s/ 登録 / 取消 \n});
  875.     %JUMP    @head(@getline(a,1,1),{\n});
  876.     %PASS    @head(@getline(a,2,1),{\n});
  877.     %MAINNUM@head(@getline(a,3,1),{\n});
  878.     %OSLNUM    @head(@getline(a,4,1),{\n});
  879.     %DOWNNUM@head(@getline(a,5,1),{\n});
  880.     %ok    @head(@getline(a,6,1),{\n});
  881.     case    (ok==1,
  882.         {Yes},    {%res1 WHERE|{/}|
  883.                 JUMP|{/}|PASS|{/}|MAINNUM|{/}|
  884.                 OSLNUM|{/}|DOWNNUM|{\n};
  885.             write(TEMPPATH|{\PVAPDOWN.DAT},res1);});
  886.     case(@mcheck!=memono,{Yes},{mopen(memono)});
  887.     im({Yes});
  888. };
  889.  
  890. /*    アップ用文書作成用メモをオープンする    */
  891. %OpenMemo{
  892.     InactMemo;
  893.     mopen(memono,0,21,639,240,{w});
  894.     mclose(1);
  895.     madd(memono+1,{\n});
  896.     mclear(memono+1);
  897.     mopen(memono+1,0,241,639,459,{w});
  898. };
  899.  
  900. /*    他のファイルを参照するためにメモを開く    */
  901. %newmemo{
  902.     case    (@mlast==9,
  903.         {Yes},    {SNDMSG({kaknin_f.snd});
  904.             select({メモ番号が一杯のため、}|
  905.                     {新しいメモが開けません},
  906.                 99999,,{ 確認 },)},
  907.         {No},
  908.             {case(@mcheck!=0,{Yes},{mclose(1)});
  909.             %memono    @mlast+1;
  910.             madd(memono,{\n});
  911.             mclear(memono);
  912.             %file1    @filesel;
  913.             case    (file1<>{}&&@filechk(file1),
  914.                 {Yes},{mread(file1,memono)});
  915.             mopen(memono,0,161,639,379)});
  916.     im({Yes});
  917. };
  918.  
  919. /*    アップ用文書を清書する    */
  920. %rewrite{
  921.     footnote({メモ}|memono+1|{を清書しています});
  922.     InactMemo;
  923.     setcdir2(DIR1);
  924.     dispoff({Yes});
  925.     delfile(TEMPPATH|{\_moptext.tmp});
  926.     delfile(TEMPPATH|{\_moptext.new});
  927.     mwrite(TEMPPATH|{\_moptext.tmp},memono+1);
  928.     case    (DIR2={},
  929.         {No},    {command(DIR2|{\txf -i }|TEMPPATH|{\_moptext.tmp -o }|
  930.                         TEMPPATH|{\_moptext.new})},
  931.         {Yes},    {command({txf -i }|TEMPPATH|{\_moptext.tmp -o }|
  932.                     TEMPPATH|{\_moptext.new})});
  933.     dispoff({No});
  934.     case    (@filechk(TEMPPATH|{\_moptext.new}),
  935.         {Yes},    {mclear(memono+1);
  936.             mread(TEMPPATH|{\_moptext.new},memono+1);
  937.             mopen(memono,0,21,639,240,{w});
  938.             %memomax @mlast;
  939.             var memono1[2];
  940.             memono1:=memono+2;
  941.             loop({
  942.             case    (memono1<=memomax,
  943.                 {Yes},{mclose(1);mopen(memono1)});
  944.             memono1:=memono1+1;
  945.             im(memono1<=memomax);
  946.             });
  947.             mclose(1);
  948.             mopen(memono+1,0,181,639,459,{w})},
  949.         {No},    {SNDMSG({kaknin_f.snd});
  950.             select({清書機能には TXF.EXE が}|
  951.                 {パスの通ったディレクトリに必要です},
  952.                 99999,,{ 確認 },);
  953.             mopen(memono,0,21,639,240,{w});
  954.             %memomax @mlast;
  955.             var memono1[2];
  956.             memono1:=memono+2;
  957.             loop({
  958.             case    (memono1<=memomax,
  959.                 {Yes},{mclose(1);mopen(memono1)});
  960.             memono1:=memono1+1;
  961.             im(memono1<=memomax);
  962.             });
  963.             mclose(1);
  964.             mopen(memono+1,0,181,639,459,{w});
  965.             });
  966.     im({Yes});
  967. };
  968.  
  969. /*    アップ文書作成をキャンセルする    */
  970. %cancel    {
  971.     SNDMSG({kaknin_f.snd});
  972.     footnote({作成中の文書を取消しますか?});
  973.     select({作成中の文書を取消しますか?},
  974.         99999,{footnote({});im({Yes})},
  975.         {  は  い  },    {CloseAllMemo;
  976.                 mopen(memono,0,21,639,459,{w});
  977.                 footnote({});
  978.                 im({No})},
  979.         {  いいえ  },{footnote({});im({Yes})});
  980. };
  981.  
  982. /*    実行    */
  983. var    fn    [8];
  984. var    LOGFILE    [64];
  985. var    FLG    [6];
  986. FLG:={};
  987. %memono @mlast+1;
  988. footnote({});
  989. case    (memono>5,
  990.     {No},    {ViewLOG(LOGPATH,memono)},
  991.     {Yes},    {SNDMSG({kaknin_f.snd});
  992.         footnote({メモ5-9の内容が消去されます  よろしいですか?});
  993.         select({メモ5-9の内容が消去されます  よろしいですか?},
  994.             99999,,
  995.             { は  い },{%memono 5;ViewLOG(LOGPATH,memono)},
  996.             { いいえ },);});
  997. setcdir(DIR1);
  998.